/*
 * Config.h
 *
 *  Created on: Jul 17, 2013
 *      Author: Dan
 */

#ifndef CONFIG_H_
#define CONFIG_H_

#include <exception>

#include "XMLTree.h"
#include "Log.h"

namespace sm {

class Config {
private:
	bool isDebugMode;
	std::string theLogFile;		//file for logging
	std::string theDebugLogFile;		//file for more logging fun
	std::string theInputDir;	//directory for input messages
	std::string theResponseDir; //directory for response messages
	std::string theTurnsDir;    //directory for unresolved turns
	std::string theGamesFile;	//file to record the list of active games
	std::string thePlayerFile;	//file to record the player accounts

public:
	Config(monkeyXML::XMLTree&) throw (monkeyXML::parseException);
	virtual ~Config();

	bool isDebugModeOn() const {
		return isDebugMode;
	}

	void setDebugMode(bool isDebugMode) {
		this->isDebugMode = isDebugMode;
	}

	const std::string& getTheDebugLogFile() const {
		return theDebugLogFile;
	}

	void setTheDebugLogFile(const std::string& theDebugLogFile) {
		this->theDebugLogFile = theDebugLogFile;
	}

	const std::string& getTheGamesFile() const {
		return theGamesFile;
	}

	void setTheGamesFile(const std::string& theGamesFile) {
		this->theGamesFile = theGamesFile;
	}

	const std::string& getTheInputDir() const {
		return theInputDir;
	}

	void setTheInputDir(const std::string& theInputDir) {
		this->theInputDir = theInputDir;
	}

	const std::string& getTheLogFile() const {
		return theLogFile;
	}

	void setTheLogFile(const std::string& theLogFile) {
		this->theLogFile = theLogFile;
	}

	const std::string& getThePlayerFile() const {
		return thePlayerFile;
	}

	void setThePlayerFile(const std::string& thePlayerFile) {
		this->thePlayerFile = thePlayerFile;
	}

	const std::string& getTheResponseDir() const {
		return theResponseDir;
	}

	void setTheResponseDir(const std::string& theResponseDir) {
		this->theResponseDir = theResponseDir;
	}

	const std::string& getTheTurnsDir() const {
		return theTurnsDir;
	}

	void setTheTurnsDir(const std::string& theTurnsDir) {
		this->theTurnsDir = theTurnsDir;
	}
};

} /* namespace monkeyXML */
#endif /* CONFIG_H_ */
